#!/usr/bin/env python3
"""
设备初始化脚本
用于设置uiautomator2权限和安装必要服务
"""

import uiautomator2 as u2
import time


def init_uiautomator2():
    """初始化uiautomator2设备"""
    print("🔧 正在初始化uiautomator2设备...")

    try:
        # 连接设备
        device = u2.connect()
        print(f"✅ 设备连接成功: {device.info.get('productName', 'Unknown')}")

        # 检查并安装ATX服务
        print("📱 正在检查uiautomator2服务状态...")
        try:
            # 尝试安装uiautomator2 APK
            import subprocess

            result = subprocess.run(
                ["python", "-m", "uiautomator2", "init"], capture_output=True, text=True
            )
            if result.returncode == 0:
                print("✅ uiautomator2服务安装/更新成功")
            else:
                print("⚠️ uiautomator2服务可能已安装")
        except Exception as e:
            print(f"⚠️ 服务安装检查异常: {e}")

        time.sleep(2)

        print("🎯 正在启动ATX服务...")
        # 检查服务状态
        try:
            device.app_start("com.github.uiautomator")
            time.sleep(2)
        except:
            pass

        # 测试点击功能
        print("🧪 测试设备控制权限...")
        try:
            # 获取屏幕尺寸
            info = device.info
            width = info["displayWidth"]
            height = info["displayHeight"]

            # 测试轻触屏幕中心
            device.click(width // 2, height // 2)
            print("✅ 设备控制权限正常")

        except Exception as e:
            print(f"❌ 设备控制权限异常: {e}")
            print("\n请在手机上执行以下操作：")
            print("1. 打开 设置 > 无障碍 > 服务")
            print("2. 找到 ATXAgent2 或 UiAutomator，开启服务")
            print("3. 允许在其他应用上层显示")
            print("4. 重新运行此脚本")
            return False

        print("🎉 设备初始化完成！")
        return True

    except Exception as e:
        print(f"❌ 设备初始化失败: {e}")
        return False


if __name__ == "__main__":
    success = init_uiautomator2()
    if success:
        print("\n现在可以正常使用抢票程序了！")
    else:
        print("\n请按照提示完成设备权限配置")

    input("\n按回车键退出...")
